Publish/Subscribe is a method by which data is organized on topics, such that publishers publish on topics and subscribers subscribe to them. Typically, all messages published by a publisher on a topic are received by all subscribers to that topic. In at least some instances, publishers and subscribers are unaware of each other's identities, allowing a very flexible form of communication. A range of current products, dedicated to different market areas, support the publish/subscribe (“pub/sub”) abstraction. In particular, the WebSphere® MQ (WSMQ) network communication software product, available from International Business Machines Corporation, Armonk, N.Y., USA, is a large system supporting a sophisticated set of operations such as fail over, transactional semantic, and non-repudiation, suitable for use in data server centers, for example, for handling banking transactions.
On the other hand, MQ Telemetry Transport (MQTT) is a light weight pub/sub mechanism suitable for use on low-level devices. In MQTT, clients (either publishers or subscribers) connect to a broker (such as IBM MicroBroker software). The broker then supports the pub/sub abstraction. MQTT supports both a “push” and “pull” model of pub/sub. The push model is as described in the previous paragraph. In the pull model, publishers publish to named queues and subscribers explicitly remove messages from those queues. In the push model, 0 to N subscribers may receive a given message, while in the pull model exactly one does.